﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace CommonLib {
    public enum Orientation : int {
        Nonexistent = 0,
        Exterior = 1,
        Interior = -1
    }
    public enum Intersection : int {
        Inside = -1,
        Outside = 1,
        Intersecting = 0
    }

    public abstract class Primitive {
        public abstract Orientation isIntersect(Ray r, ref double dist);
        public abstract Intersection isIntersect(Cell b);
        public abstract Vector3c getNormal(Vector3c boundryPoint);
        public abstract Cell getBoundingBox();

        public Material Material { get { return material; } set { material = value; } }
        public bool Light { get { return light; } }

        protected internal Material material;
        protected internal bool light;
    }


}
